Skip to main content

逆波兰表达式 (RPN) 详解

逆波兰表达式(也叫后缀表达式)是一种不需要括号的数学表达式书写方式。

1. 什么是逆波兰表达式?

普通的算术表达式(中缀表达式)是 1 + 2,而后缀表达式则是 1 2 +

核心规则:

  • 操作数在前,运算符在后。
  • 遇到数字就入栈。
  • 遇到运算符就弹出栈顶的两个数字进行计算。

2. 算法实现 (C语言)

利用我们之前写的顺序栈,可以很方便地实现计算逻辑:

#include <stdio.h>
#include <stdlib.h>

// 假设我们已经定义了一个 Stack 结构体
void calculateRPN(char* expression) {
// 1. 初始化栈
// 2. 遍历字符串
// 3. 遇到操作数进栈,遇到运算符出栈计算
printf("正在计算表达式: %s\n", expression);
}